package tebiang.zxy.demo1.engine;

import tebiang.zxy.demo1.entity.Message;
import tebiang.zxy.demo1.handler.MessageHandler;

import java.util.HashMap;
import java.util.Map;

/**
 * @auther zhangxiaoyu
 * @date 2024/4/11 15:11
 * @description
 */
public class MessageEngine {

    /**
     * 此处可以通过枚举类来存储映射
     */
    private Map<String, MessageHandler> handlerMap = new HashMap<>();

    /**
     * 注册消息处理类
     */
    public void registerHandler(String messageType, MessageHandler handler) {
        handlerMap.put(messageType, handler);
    }

    /**
     * 消息消费入口
      */
    public void handlerMessage(Message message) {
        MessageHandler handler = handlerMap.get(message.getType());
        if (handler != null) {
            handler.handleMessage(message);
        } else {
            // 处理未知消息类型的逻辑，例如记录日志或抛出异常
        }
    }
}
